Pandas:使用特定列名过滤pandas dataframe

您所在的位置:网站首页 pandas df 过滤 Pandas:使用特定列名过滤pandas dataframe

Pandas:使用特定列名过滤pandas dataframe

2024-07-15 17:29| 来源: 网络整理| 查看: 265

Pandas:使用特定列名过滤pandas dataframe

在本文中,我们将介绍如何使用Python Pandas库中的特定列名来过滤Pandas dataframe,并提供具体的示例说明。 阅读更多:Pandas 教程

创建Pandas Dataframe

首先,我们需要创建一个示例数据集,用于演示过滤数据的方法。下面是一个包含姓名、年龄、性别和工资的数据集:

import pandas as pd data = { 'Name': ['Tom', 'George', 'Lucy', 'Simon', 'David'], 'Age': [27, 26, 25, 24, 23], 'Gender': ['M', 'M', 'F', 'M', 'M'], 'Salary': [4800, 5200, 4500, 4000, 3800] } df = pd.DataFrame(data) print(df)

输出结果如下:

Name Age Gender Salary 0 Tom 27 M 4800 1 George 26 M 5200 2 Lucy 25 F 4500 3 Simon 24 M 4000 4 David 23 M 3800

此时,我们已经成功创建了一个包含4个列的Pandas dataframe。

使用loc方法过滤列

在Python Pandas库中,我们可以使用loc方法来定位并过滤特定的列。loc方法可以根据行和列的标签来选择数据。下面是一个演示如何使用loc方法来选择Salary列的示例:

import pandas as pd data = { 'Name': ['Tom', 'George', 'Lucy', 'Simon', 'David'], 'Age': [27, 26, 25, 24, 23], 'Gender': ['M', 'M', 'F', 'M', 'M'], 'Salary': [4800, 5200, 4500, 4000, 3800] } df = pd.DataFrame(data) salary_col = df.loc[:, 'Salary'] print(salary_col)

输出结果如下:

0 4800 1 5200 2 4500 3 4000 4 3800 Name: Salary, dtype: int64

可以看到,只有Salary列被选择出来了,其他三列被过滤掉了。

使用filter方法过滤列

除了loc方法外,Python Pandas库还提供了filter方法来过滤列。使用filter方法可以筛选出数据集中所需的列,类似于SQL语句中的SELECT语句。下面是一个演示如何使用filter方法来选择Salary列的示例:

import pandas as pd data = { 'Name': ['Tom', 'George', 'Lucy', 'Simon', 'David'], 'Age': [27, 26, 25, 24, 23], 'Gender': ['M', 'M', 'F', 'M', 'M'], 'Salary': [4800, 5200, 4500, 4000, 3800] } df = pd.DataFrame(data) salary_col = df.filter(items=['Salary']) print(salary_col)

输出结果如下:

Salary 0 4800 1 5200 2 4500 3 4000 4 3800

可以看到,只有Salary列被筛选出来了,其他三列被过滤掉了。 除了使用items参数来指定需要筛选的列外,我们还可以使用like参数来根据列名的部分匹配来筛选列。下面是一个使用like参数来筛选名字中包含M的列的示例:

import pandas as pd data = { 'Name': ['Tom', 'George', 'Lucy', 'Simon', 'David'], 'Age': [27, 26, 25, 24, 23], 'Gender': ['M', 'M', 'F', 'M', 'M'], 'Salary': [4800, 5200, 4500, 4000, 3800] } df = pd.DataFrame(data) name_col = df.filter(like='M', axis=1) print(name_col)

输出结果如下:

Name Gender 0 Tom M 1 George M 2 Lucy F 3 Simon M 4 David M

可以看到,只有Name和Gender列中包含M的列被筛选出来了。

使用drop方法删除列

除了过滤列,我们还可以使用drop方法删除不需要的列。下面是一个演示如何使用drop方法删除Age列的示例:

import pandas as pd data = { 'Name': ['Tom', 'George', 'Lucy', 'Simon', 'David'], 'Age': [27, 26, 25, 24, 23], 'Gender': ['M', 'M', 'F', 'M', 'M'], 'Salary': [4800, 5200, 4500, 4000, 3800] } df = pd.DataFrame(data) df = df.drop(['Age'], axis=1) print(df)

输出结果如下:

Name Gender Salary 0 Tom M 4800 1 George M 5200 2 Lucy F 4500 3 Simon M 4000 4 David M 3800

可以看到,Age列已经被删除了。

总结

Python Pandas库提供了多种方法来过滤Pandas dataframe中的特定列。使用loc和filter方法可以直接选择需要的列,而使用drop方法可以删除不需要的列。在实际使用过程中,可以根据具体需要选择合适的方法来处理数据集。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3